﻿Public Class GalleryUpdate
    Inherits CoreClass

    Dim idPro As Integer
    ' Gan gia tri cho bien MenuID de kiem tra quyen cua ng dung, gia tri nay lay trog DB va dc fix
    Dim chkMenu As Integer = getIDMenu(4)

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Try
            idPro = Integer.Parse(Request.QueryString("id"))
            lb_ID.Text = idPro.ToString
        Catch ex As Exception
            Response.Redirect("Gallery.aspx")
        End Try

        Try
            chkPms((CInt(Session("GroupId").ToString())), chkMenu)
            If Not Page.IsPostBack Then
                If chkView = 1 Then
                    BindGrid1()
                Else
                    'MsgBox(chkView & chkUpdate & chkDelete)
                    objAlert.ErrorBox(Page, "Bạn không có quyền truy xuất trang này, liên hệ với Admin để biết thêm chi tiết.")
                    'Response.Redirect("Default.aspx")
                End If
            End If
        Catch ex As Exception
            Response.Redirect("/Inside/xLogin.aspx?redirect=" & Request.Url.PathAndQuery.Replace("?", "|"))
        End Try
    End Sub


    ' Hàm lấy danh sách các record của các box
    Private Sub BindGrid1()
        sql = "spi_GalleryGet " & idPro
        Try
            dsListImg.ConnectionString = ConnectionString
            dsListImg.SelectCommand = sql
            Repeater1.DataBind()
            Repeater1.Dispose()
        Catch ex As Exception
            If objConfig.Developer.Equals("1") Then
                objAlert.ErrorBox(Page, "File: " & (New System.Diagnostics.StackTrace).GetFrame(0).GetMethod.DeclaringType.Name & _
                                  " --- Function: " & (New System.Diagnostics.StackTrace).GetFrame(0).GetMethod.Name & _
                                  " --- Mess: " & ex.Message.Replace("'", """"))
            Else
                objAlert.ErrorBox(Page, "Lỗi kỹ thuật, hãy thông báo lại với Admin, xin cảm ơn.")
            End If
        End Try
    End Sub


    Private Sub btnDelete_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnDelete.Click
        If Not chkDelete = 1 Then
            objAlert.ErrorBox(Page, "Bạn không có quyền truy xuất trang này, liên hệ với Admin để biết thêm chi tiết.")
            Exit Sub
        End If

        If txtListImg.Text = "" Then
            objAlert.ErrorBox(Page, "Bạn chưa chọn ảnh để xóa.")
            Exit Sub
        End If

        Try
            ' Khai báo biến lưu trữ danh sách ID cần xóa
            Dim lstIMG As String = txtListImg.Text
            ' Xóa dấu , ở sau cùng đi
            lstIMG = lstIMG.Substring(0, Len(lstIMG) - 1)

            ' Xóa dữ liệu trong DB
            sql = "spi_GalleryDelete " & objFunction.FieldCheck(lstIMG)
            objData.ExeReader(sql)
            ' câu sql trên trả lại những bản ghi đã xóa, chạy vòng lặp xóa hết ảnh liên quan đến bản ghi vừa bị xóa
            Do While objData.dataRead.Read
                Dim src As String = Server.MapPath("/") & objData.dataRead("GalleryImg").ToString.Replace("/", "\")
                Dim thumb As String = Server.MapPath("/") & objData.dataRead("GalleryThumb").ToString.Replace("/", "\")
                If System.IO.File.Exists(src) Then
                    System.IO.File.Delete(src)
                End If
                If System.IO.File.Exists(thumb) Then
                    System.IO.File.Delete(thumb)
                End If
            Loop
            objDataRead.ExeReader(sql)
            '0 = Xóa, 1 = Thêm mới, 2 = Update, 3 = Khác
            objFunction.writeLog(Session("UserId"), 0, "Xóa ảnh Gallery của sản phẩm có ID = " & idPro, "", "")
            objAlert.InfoBox(Page, "Bạn xóa ảnh thành công.", Request.Url.PathAndQuery)
        Catch ex As Exception
            If objConfig.Developer.Equals("1") Then
                objAlert.ErrorBox(Page, "File: " & (New System.Diagnostics.StackTrace).GetFrame(0).GetMethod.DeclaringType.Name & _
                                  " --- Function: " & (New System.Diagnostics.StackTrace).GetFrame(0).GetMethod.Name & _
                                  " --- Mess: " & ex.Message.Replace("'", """"))
            Else
                objAlert.ErrorBox(Page, "Lỗi kỹ thuật, hãy thông báo lại với Admin, xin cảm ơn.")
            End If
        End Try
    End Sub

    ' Hàm format date và tên ảnh để tạo thành link ảnh chuẩn
    Public Function getLinkImg(ByVal strImg As String) As String
        Return "../../../" & strImg.Replace("\", "/")
    End Function

End Class